package com.ruoyi.project.erp.mapper;

import java.util.Collection;
import java.util.Date;
import java.util.List;
import com.ruoyi.project.erp.domain.Task;
import com.ruoyi.project.erp.domain.TaskTemp;
import com.ruoyi.project.erp.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 任务Mapper接口
 * 
 * @author ruoyi
 * @date 2025-06-19
 */
@Mapper
public interface TaskMapper 
{
    /**
     * 查询任务
     * 
     * @param id 任务主键
     * @return 任务
     */
    public Task selectTaskById(Long id);

    /**
     * 查询任务列表
     * 
     * @param task 任务
     * @return 任务集合
     */
    public List<Task> selectTaskList(Task task);

    /**
     * 新增任务
     * 
     * @param task 任务
     * @return 结果
     */
    public int insertTask(Task task);

    /**
     * 修改任务
     * 
     * @param task 任务
     * @return 结果
     */
    public int updateTask(Task task);

    /**
     * 删除任务
     * 
     * @param id 任务主键
     * @return 结果
     */
    public int deleteTaskById(Long id);

    /**
     * 批量删除任务
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTaskByIds(Long[] ids);

    public List<TaskVo> currentTask(String ddUserId, Date startTime);

    TaskInfoVo queryTaskInfoById(Long taskId);

    List<MyTaskInfoVo> selectMyTasksByUserId(@Param("userId") String userId);

    List<Task> selectTaskListByProjectId(String projectId);

    void selectList();

    List<String> selectName();

    TaskDetialVO selectTaskDetailById(Long id);

    List<TaskListVO> selectMyTasksByProjectId(@Param("ddUserId") String ddUserId, @Param("projectId") String projectId);

    int batchInsertTask(@Param("list")List<Task> list);

    List<String> selectProjectIdsByTaskName(@Param("taskName") String taskName, @Param("projectIds") List<String> projectIds);
}
